// 修改密码的逻辑代码

// 1. 验证是否登录过, 如果没有登录过, 跳转回到登录页面
const id = window.localStorage.getItem('id')
const token = window.localStorage.getItem('token')

// 判断
if (!id) window.location.href = './login.html'

// 2. 表单提交事件
const form = document.querySelector('form')
const oldPwdInp = document.querySelector('.oldPwd')
const newPwdInp = document.querySelector('.newPwd')
const rpwdInp = document.querySelector('.rpwd')
const errBox = document.querySelector('.error')

form.addEventListener('submit', async e => {
  e.preventDefault()

  // 2-1. 采集用户信息
  const info = {
    id,
    oldPassword: oldPwdInp.value,
    newPassword: newPwdInp.value,
    rNewPassword: rpwdInp.value
  }

  // 2-2. 各种验证
  if (!info.oldPassword || !info.newPassword || !info.rNewPassword) return alert('请完整填写表单')
  if (info.newPassword !== info.rNewPassword) return alert('两次密码不一致')

  // 2-3. 发送请求
  // 利用新封装的 pAjax 发送
  // 使用 async / await 语法, 写的看起来像一个同步代码
  // 我需要在这个事件处理函数里面使用 await
  // 需要在事件处理函数前面书写 async 关键字
  const res = await pAjax({
    url: 'http://localhost:8888/users/rpwd',
    method: 'POST',
    data: info,
    dataType: 'json',
    headers: { authorization: token }
  })

  // 通过 res 的 code 来判断
  if (res.code === 0) {
    // 修改失败
    errBox.style.display = 'block'
    return
  }

  if (res.code === 401) {
    // 登录状态过期
    window.location.href = './login.html'
    return
  }

  if (res.code === 1) {
    // 修改成功
    alert('修改密码成功, 点击确定重新登录')
    window.location.href = './login.html'
  }
})
